﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.IO;
using System.Windows.Forms;

namespace nmFile
{
    class myFile
    {

        private void CrearDirectorioImagenes()
        {
            if (!Directory.Exists(Directory.GetCurrentDirectory() + "\\Imagenes"))
            {
                Directory.CreateDirectory(Directory.GetCurrentDirectory() + "\\Imagenes");
            }

        }

        public void AgregarImagen(ref DataGridView grdProductos, int ColumnGrid, int RowGrid)
        {

            CrearDirectorioImagenes();

            OpenFileDialog ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string NombreArchivo = ofd.SafeFileName;
                string RutaArchivo = ofd.FileName;
                string RutaDestino = "Imagenes/" + NombreArchivo;


                if (ofd.FileName == Directory.GetCurrentDirectory() + "\\Imagenes\\" + NombreArchivo)
                {
                    MessageBox.Show("No se puede insertar una imagen de la Carpeta /Imagenes/ en el mismo Directorio", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                else
                {

                    if (File.Exists(RutaDestino))
                    {
                        if (MessageBox.Show("Ya existe el archivo. ¿Desea Reemplazarlo?", "Error", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            File.Delete(RutaDestino);
                            File.Copy(ofd.FileName, RutaDestino);
                            grdProductos[ColumnGrid, RowGrid].Value = RutaDestino;
                        }
                    }


                    else
                    {
                        File.Copy(ofd.FileName, RutaDestino);
                        grdProductos[ColumnGrid, RowGrid].Value = RutaDestino;
                    }
                }
            }


        }



        public void BorrarImagen(ref DataGridView grdProductos, int ColumnGrid, int RowGrid)
        {
            CrearDirectorioImagenes();

            grdProductos[ColumnGrid, RowGrid].Value = "";
        }

        public void AgregarExistente(ref DataGridView grdProductos, int ColumnGrid, int RowGrid)
        {
            CrearDirectorioImagenes();

            OpenFileDialog a = new OpenFileDialog();
            string DirectorioImagenes = Directory.GetCurrentDirectory() + "\\Imagenes";
            a.InitialDirectory = DirectorioImagenes;

            if (a.ShowDialog() == DialogResult.OK)
            {
                string NombreArchivo = a.SafeFileName;
                string RutaDestino = "Imagenes/" + NombreArchivo;

                if (a.FileName != DirectorioImagenes + "\\" + NombreArchivo)
                {
                    MessageBox.Show("No se puede cargar Dicho Archivo. Agréguelo primero con el Menu Agregar Nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    grdProductos[ColumnGrid, RowGrid].Value = RutaDestino;
                }
            }
        }


        //***********************************************************************

        public void AgregarExistente(ref TextBox txtImagen)
        {
            string DirectorioImagenes = Directory.GetCurrentDirectory() + "\\Imagenes";
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.InitialDirectory = DirectorioImagenes;

            if (ofd.ShowDialog() == DialogResult.OK)
            {

                string NombreArchivo = ofd.SafeFileName;
                string RutaDestino = "Imagenes/" + NombreArchivo;

                if (ofd.FileName != DirectorioImagenes + "\\" + NombreArchivo)
                {
                    MessageBox.Show("No se puede cargar Dicho Archivo. Agréguelo primero con el Menu Agregar Nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    txtImagen.Text = RutaDestino;
                }
            }

        }


        // *************************

        public void BorrarImagen(ref TextBox txtImagen)
        {
            txtImagen.Text = "";
        }

        // *************************

        public void AgregarImagen(ref TextBox txtImagen)
        {
            string DirectorioImagenes = Directory.GetCurrentDirectory() + "\\Imagenes";
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.InitialDirectory = DirectorioImagenes;

                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    string NombreArchivo = ofd.SafeFileName;
                    string RutaArchivo = ofd.FileName;
                    string RutaDestino = "Imagenes/" + NombreArchivo;

                    if (ofd.FileName == Directory.GetCurrentDirectory() + "\\Imagenes\\" + NombreArchivo)
                    {
                        MessageBox.Show("No se puede insertar una imagen de la Carpeta /Imagenes/ en el mismo Directorio", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }


                    else if (File.Exists(RutaDestino))
                    {
                        if (MessageBox.Show("Ya existe el archivo. ¿Desea Reemplazarlo?", "Error", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            File.Delete(RutaDestino);
                            File.Copy(ofd.FileName, RutaDestino);
                            txtImagen.Text = RutaDestino;
                        }
                    }
                    else
                    {
                        File.Copy(ofd.FileName, RutaDestino);
                        txtImagen.Text = RutaDestino;
                    }
                }
        }


        }



    }

